#pragma once
namespace _FOGGE_
{
	namespace _UTIL_
	{

		class aTerminal
		{
		public:
			aTerminal(void);
			virtual ~aTerminal(void);

			void Write( LPCTSTR str );
			void Flush();
		
			//! attach logger to end of logchain
			void AttachTerminalToChain(aTerminal* ptrTerm);
			
			void RemoveTerminalAtChain();
			
			
		protected:

			virtual void Write_Implement( LPCTSTR str )=0;
			virtual void Flush_Implement()=0;


			aTerminal* m_ptrNextTerm;



		};
	}
}